<?php
/*
 *      This program is free software; you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *      (at your option) any later version.
 *      
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *      
 *      You should have received a copy of the GNU General Public License
 *      along with this program; if not, write to the Free Software
 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 *      MA 02110-1301, USA.
 */

/*	Librería de funciones 
 * */

// Creamos sesión para provocar una vulnerabilidad de 'Full Path Disclosure'
session_start();
// Incluimos configuraciones
require_once('config/config.inc.php');

// Declaramos variable HTML que llevará el código que se generará
if(!isset($codigoHTML))
	$codigoHTML = "";

/*
 *  Biblioteca de funciones
 * */

/* 
 * nombre: slwaVersion()
 * descripción:  Devuelve la versión de la aplicación
 * @param
 * @return
 */
function slwaVersion() {
	return '1.0.0';
}

/* 
 * nombre: slwaFecha()
 * descripción:  Devuelve la fecha de publicación
 * @param
 * @return
 */
function slwaFecha() {
	return '22/04/11';
}
/* 
 * nombre: slwaGrabarSesion()
 * descripción:  Devuelve un array para almacenar los datos de la sesión
 * @param
 * @return	$_SESSION['slwa']
 */
function slwaGrabarSesion() {
	if(!isset($_SESSION['slwa']))
		$_SESSION['slwa'] = array();

	return $_SESSION['slwa'];
}

/* 
 * nombre: slwaLogin($pUsuario)
 * descripción:  Loguea el usuario
 * @param: $pUsuario - Contiene el nombre del usuario que inicia sesión
 * @return	$_SESSION['slwa']
 */
function slwaLogin($pUsuario) {
	$slwaSesion = slwaGrabarSesion();
	$slwaSesion['usuario'] = $pUsuario;
}

function slwaEstaLogueado() {
	$slwaSesion = slwaGrabarSesion();
	return isset($slwaSesion['usuario']);
}

function slwaLogout() {
	$slwaSesion = slwaGrabarSesion();
	unset($slwaSesion['usuario']);
}

function slwaUsuarioActual() {
	$slwaSesion = slwaGrabarSesion();
	return (isset($slwaSesion['usuario']) ? $slwaSesion['usuario'] : '');
}

function slwaMostrarMensaje($pMensaje) {
	$slwaSesion = slwaGrabarSesion();
	if(!isset($slwaSesion['mensajes']))
		$slwaSesion['mensajes'] = array();
	
	return $slwaSesion['mensajes'][] = $pMensaje;
}

function slwaBorrarMensaje() {
	if(!isset($slwaSesion['mensajes']) || count($slwaSesion['mensajes']) == 0)
		return false;
	return array_shift($slwaSesion['mensajes']);
}

function slwaRefrescarPagina() {
	slwaRedireccionar($_SERVER['PHP_SELF']);
}

function slwaRedireccionar($pPagina) {
	session_commit();
	header("Location: {$pPagina}");
	exit();
}

function slwaEstablecerSeguridad($pNivelSeguridad) {
	setcookie('seguridad', $pNivelSeguridad);
}

function slwaObtenerNivelSeguridad() {
	return isset($_COOKIE['seguridad']) ? $_COOKIE['seguridad'] : 'alto');
}

function slwaImprimirHTML($pPagina) {
	// Bloque menú
	$menuBloques = arrary();

	// Para cada categoría definimos un array dentro del array original
	// Array Inicio	
	$menuBloques['inicio'] = array();
	$menuBloques['inicio'] = array('id' => '', '' => '', '' => '');
	
	// Vulnerabilidades
	$menuBloques['vulnerabilidades'] = array();
	$menuBloques['vulnerabilidades'] = array('id' => 'xss', 'nombre' => 'XSS', 'url' => 'vulnerabilidades/xss');
	$menuBloques['vulnerabilidades'] = array('id' => 'dpt', 'nombre' => 'Directory Path Traversal', 'url' => 'vulnerabilidades/dpt');
	$menuBloques['vulnerabilidades'] = array('id' => 'sqlinjection', 'nombre' => 'SQL Injection', 'url' => 'vulnerabilidades/sqlinjection');
	$menuBloques['vulnerabilidades'] = array('id' => 'bypass', 'nombre' => 'Bypassing', 'url' => 'vulnerabilidades/bypassing');

	// Meta
	$menuBloques['informacion'] = array();
	$menuBloques['informacion'] = array('id' => 'phpinfo', 'nombre' => 'PHP Info', 'url' => 'phpinfo.php');
	$menuBloques['informacion'] = array('id' => 'about', 'nombre' => 'Acerca de', 'url' => 'acercade.php');

	// Logout
	$menuBloques['logout'] = array();
	$menuBloques['logout'] = array('id' => 'logout', 'nombre' => 'Desconexión', 'url' => 'logout.php');

	$menuHTML = '';

	// Recorremos los arrays
	foreach($menuBloques as $menuBloque)
		//....

}
